linux crontab定时任务执行日志

用户的定时任务文件:/var/spool/cron/《用户名》

执行日志:/var/log/cron

宝塔面板定时执行任务会增加flock参数

语法: flock 文件名

1
*/1 * * * * flock -xn /tmp/sleeptest.lock -c /tmp/sleeptest.sh >> /tmp/sleeptest.log

解析

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
flock [-sxun][-w #]
flock [-sxon][-w #] file [-c] command

-s, --shared:    获得一个共享锁
-x, --exclusive: 获得一个独占锁/排他锁
-u, --unlock:    移除一个锁,通常是不需要的,脚本执行完会自动丢弃锁
-n, --nonblock:  如果没有立即获得锁,直接失败而不是等待
-w, --timeout:   如果没有立即获得锁,等待指定时间
-o, --close:     在运行命令前关闭文件的描述符号。用于如果命令产生子进程时会不受锁的管控
-c, --command:   在shell中运行一个单独的命令
-h, --help       显示帮助
-V, --version:   显示版本
-w 等待时间,秒

使用共享锁LOCK_SH,如果是读取,不需要等待,但如果是写入,需要等待读取完成。
使用独占锁LOCK_EX,无论写入/读取都需要等待。
LOCK_UN,无论使用共享/读占锁,使用完后需要解锁。
LOCK_NB,当被锁定时,不阻塞,而是提示锁定。